export function getSsq(array){
    // console.log(array)
    let s = []

    array.forEach(value=>{
        s.push(value.red)
    })
    console.log(s)
    let nums = getCountMap(s)
    console.log('最近105次的出现',nums)
    console.log('最近55次的出现',getCountMap(s.slice(0,52)))
}

export function getCountMap(arr){
    // 创建一个对象来存储每个数字出现的次数
    const countMap = {};
    // 初始化 1-33 的数字列表，默认次数为 0
    for (let i = 1; i <= 33; i++) {
        countMap[i] = 0;
    }
// 遍历数组中的每个字符串
    arr.forEach(item => {
        const numbers = item.split(',').map(num => parseInt(num, 10)); // 将字符串转换为数字
        numbers.forEach(num => {
            countMap[num] = (countMap[num] || 0) + 1; // 统计每个数字出现的次数
        });
    });

    // 将 countMap 转换为数组形式，便于排序
    const sortedNumbers = Object.entries(countMap).sort((a, b) => a[1] - b[1]);
    const missingNumbers = Object.entries(countMap)
        .filter(([num, count]) => count === 0)
        .map(([num]) => parseInt(num));
// 获取出现次数最少的6个数字
    const leastFrequentNumbers = sortedNumbers.slice(0, 6).map(item => parseInt(item[0]));
    const maxNUm =  sortedNumbers.slice(-6).map(item => parseInt(item[0]));
    let form = {
        min:leastFrequentNumbers,//出现次数最少的6个
        max:maxNUm,//出现次数最多的6个
        //总共出现
        countMap:countMap,
        missingNumbers:missingNumbers,
        center:zws(arr)
    }
    return form
}

export function zws (arr){
    // 创建一个对象来存储每个数字出现的次数
    const countMap = {};

// 初始化 1-33 的数字列表，默认出现的次数为 0
    for (let i = 1; i <= 33; i++) {
        countMap[i] = 0;
    }

// 遍历数组中的每个字符串
    arr.forEach(item => {
        const numbers = item.split(',').map(num => parseInt(num, 10)); // 将字符串转换为数字
        numbers.forEach(num => {
            countMap[num]++; // 统计每个数字出现的次数
        });
    });

// 获取所有数字的出现次数并排序
    const counts = Object.values(countMap).sort((a, b) => a - b);

// 计算出现次数的中位数
    const midIndex = Math.floor(counts.length / 2);
    const median = counts.length % 2 === 0
        ? (counts[midIndex - 1] + counts[midIndex]) / 2
        : counts[midIndex];

// 找出最接近中位数的6个数字
    const sortedByCloseness = Object.entries(countMap)
        .sort((a, b) => Math.abs(a[1] - median) - Math.abs(b[1] - median))
        .slice(0, 6)
        .map(([num]) => parseInt(num));

    return sortedByCloseness
}